/**
 * 
 */
package br.com.sgc.session;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import br.com.sgc.dao.ParametroDao;
import br.com.sgc.entities.geral.Parametro;
import br.com.sgc.exception.ValidacaoException;

/**
 * @author stevens
 * 
 */
@Stateless
@Remote
public class ParametroSession extends GenericSession<Parametro> {

	private static final long serialVersionUID = -7988355470178101090L;

	@EJB
	private ParametroDao parametroDao;

	@PostConstruct
	public void setDao() {
		this.dao = parametroDao;
	}

	/**
	 * Realiza update somente no parâmetro cujo id seja igual a ID_DEFAULT
	 */
	@Override
	public Parametro save(Parametro parametro) throws ValidacaoException {
		Parametro p = parametro;
		if (count(parametro, parametro.getClinica().getId()) == 0) {
			parametro.setId(ParametroDao.ID_DEFAULT);
			p = super.save(p);	
		}
		return p;		
	}

	/**
	 * Método sem implementação. Um parâmetro não poderá ser removido
	 */
	@Override
	public void delete(Parametro t) throws ValidacaoException {}

	/**
	 * Realiza update somente no parâmetro cujo id seja igual a ID_DEFAULT
	 */
	@Override
	public Parametro update(Parametro t)
			throws ValidacaoException {
		return parametroDao.updateSingleton(t);
	}
}
